package com.itheima.d6_char_stream;

import java.io.FileReader;
import java.io.Reader;

/**
    -FileInputStream    FileOutputStream    FileReader  FileWriter(实现类)
    c.FileReader:文件字符输入流。
        -- 作用：以内存为基准，把磁盘文件的数据以字符的形式读入到内存。
            简单来说，读取文本文件内容到内存中去。

        -- 构造器：
            public FileReader(File file):创建一个字符输入流与源文件对象接通。
            public FileReader(String filePath):创建一个字符输入流与源文件路径接通。

        -- 方法：
            public int read(): 读取一个字符的编号返回！读取完毕返回-1
            public int read(char[] buffer):读取一个字符数组，读取多少个字符就返回多少个数量，读取完毕返回-1

        小结：
            字符流一个一个字符的读取文本的读取文本内容输出，可以读取中文读取输出乱码的问题。
            字符流很适合操作文本文件内容。
            但是：一个一个字符的读取文本内容性能较差！
 */
public class FileReaderDemo02 {
    public static void main(String[] args) throws Exception {
        // 1. 创建一个字符输入流
        Reader fr = new FileReader("file-io-app/src/data5.txt");

        // 2. 用循环，每次读取一个字符数组的数据
        char[] buffer = new char[1024]; // 1024个字符。
        int len;
        while ((len = fr.read(buffer)) != -1){
            String rs = new String(buffer, 0, len);
            System.out.print(rs);
        }
    }
}
